package com.ruoyi.test.service;

import java.util.List;
import com.ruoyi.test.domain.TestDelivery;
import com.ruoyi.test.domain.dto.TestDeliveryExportDto;

/**
 * 送货单主表Service接口
 * 
 * @author ruoyi
 * @date 2024-12-27
 */
public interface ITestDeliveryService {
    /**
     * 查询送货单主表
     * 
     * @param deliveryId 送货单主表主键
     * @return 送货单主表
     */
    public TestDelivery selectTestDeliveryByDeliveryId(Long deliveryId);

    /**
     * 查询送货单主表列表
     * 
     * @param testDelivery 送货单主表
     * @return 送货单主表集合
     */
    public List<TestDelivery> selectTestDeliveryList(TestDelivery testDelivery);

    /**
     * 新增送货单主表
     * 
     * @param testDelivery 送货单主表
     * @return 结果
     */
    public int insertTestDelivery(TestDelivery testDelivery);

    /**
     * 修改送货单主表
     * 
     * @param testDelivery 送货单主表
     * @return 结果
     */
    public int updateTestDelivery(TestDelivery testDelivery);

    /**
     * 批量删除送货单主表
     * 
     * @param deliveryIds 需要删除的送货单主表主键集合
     * @return 结果
     */
    public int deleteTestDeliveryByDeliveryIds(Long[] deliveryIds);

    /**
     * 删除送货单主表信息
     * 
     * @param deliveryId 送货单主表主键
     * @return 结果
     */
    public int deleteTestDeliveryByDeliveryId(Long deliveryId);

    /**
     * 校验送货单编号是否唯一
     * 
     * @param testDelivery 送货单信息
     * @return 结果
     */
    public boolean checkDeliveryNoUnique(TestDelivery testDelivery);

    /**
     * 生成送货单编号
     * 
     * @return 送货单编号
     */
    public String generateDeliveryNo();

    /**
     * 更新送货状态
     * 
     * @param testDelivery 送货单信息
     * @return 结果
     */
    public int updateDeliveryStatus(TestDelivery testDelivery);

    /**
     * 查询送货单导出数据列表
     * 
     * @param testDelivery 送货单主表
     * @return 送货单导出数据列表
     */
    public List<TestDeliveryExportDto> selectTestDeliveryExportList(TestDelivery testDelivery);
} 